package twel.probenprophet.base.enums;

import java.lang.reflect.Field;

import javax.xml.bind.annotation.XmlEnumValue;

import twel.probenprophet.base.exceptions.ProbenprophetException;

public enum AllowedModification {

	@XmlEnumValue(value = "Veränderte Technik")
	TECHNIK, //
	@XmlEnumValue(value = "Zauberdauer")
	ZAUBERDAUER,
	@XmlEnumValue(value = "Erzwingen")
	ERZWINGEN,
	@XmlEnumValue(value = "Kosten")
	KOSTEN,
	@XmlEnumValue(value = "Zielobjekt")
	ZIELOBJEKT,
	@XmlEnumValue(value = "Reichweite")
	REICHWEITE,
	@XmlEnumValue(value = "Wirkungsdauer")
	WIRKUNGSDAUER;

	@Override
	public String toString() {
		try {
			Field enumConstant = AllowedModification.class.getField(name());
			XmlEnumValue xmlEnumValue = enumConstant.getAnnotation(XmlEnumValue.class);
			return xmlEnumValue.value();
		} catch (SecurityException e) {
			throw new ProbenprophetException(e);
		} catch (NoSuchFieldException e) {
			throw new ProbenprophetException(e);
		}
	};
}
